package com.jrauto.CarAppBackend.entity.dto;

/**
 * @author : huiMing
 * Date : 2025年07月23日 15:35
 * @version V1.0
 */

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * Car Query Data Transfer Object (用于多条件查询)
 */
@Data
public class CarQueryDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 车辆标题 (模糊查找)
     */
    private String title;

    /**
     * 车辆编号
     */
    private String carNumber;

    /**
     * 汽车品牌
     */
    private String brand;

    /**
     * 车源省份
     */
    private String province;

    /**
     * 车源城市
     */
    private String city;

    /**
     * 车源区县
     */
    private String district;

    /**
     * 行驶公里数 (不超过多少，比如4以下)
     */
    private Integer maxMileage;

    /**
     * 座位数
     */
    private Integer seats;

    /**
     * 最低销售价格（元）
     */
    private BigDecimal minPrice;

    /**
     * 最高销售价格（元）
     */
    private BigDecimal maxPrice;

    /**
     * 制造年份
     */
    private Integer manufactureYear;

    /**
     * 上牌年份
     */
    private Integer registrationYear; // Assuming this means the year part of the registration date

    /**
     * 外观颜色
     */
    private String exterior;

    /**
     * 内饰颜色
     */
    private String interior;

    /**
     * 动力类型：1=纯电,2=汽油,3=油电混合,4=增程,5=柴油
     */
    private Integer power;

    /**
     * 续航公里（多少以上，比如600+）
     */
    private Integer minKilometer;

    /**
     * 过户次数
     */
    private Integer transferCount;


    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getCarNumber() {
        return carNumber;
    }

    public void setCarNumber(String carNumber) {
        this.carNumber = carNumber;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getDistrict() {
        return district;
    }

    public void setDistrict(String district) {
        this.district = district;
    }

    public Integer getMaxMileage() {
        return maxMileage;
    }

    public void setMaxMileage(Integer maxMileage) {
        this.maxMileage = maxMileage;
    }

    public Integer getSeats() {
        return seats;
    }

    public void setSeats(Integer seats) {
        this.seats = seats;
    }

    public BigDecimal getMinPrice() {
        return minPrice;
    }

    public void setMinPrice(BigDecimal minPrice) {
        this.minPrice = minPrice;
    }

    public BigDecimal getMaxPrice() {
        return maxPrice;
    }

    public void setMaxPrice(BigDecimal maxPrice) {
        this.maxPrice = maxPrice;
    }

    public Integer getManufactureYear() {
        return manufactureYear;
    }

    public void setManufactureYear(Integer manufactureYear) {
        this.manufactureYear = manufactureYear;
    }

    public Integer getRegistrationYear() {
        return registrationYear;
    }

    public void setRegistrationYear(Integer registrationYear) {
        this.registrationYear = registrationYear;
    }

    public String getExterior() {
        return exterior;
    }

    public void setExterior(String exterior) {
        this.exterior = exterior;
    }

    public String getInterior() {
        return interior;
    }

    public void setInterior(String interior) {
        this.interior = interior;
    }

    public Integer getPower() {
        return power;
    }

    public void setPower(Integer power) {
        this.power = power;
    }

    public Integer getMinKilometer() {
        return minKilometer;
    }

    public void setMinKilometer(Integer minKilometer) {
        this.minKilometer = minKilometer;
    }

    public Integer getTransferCount() {
        return transferCount;
    }

    public void setTransferCount(Integer transferCount) {
        this.transferCount = transferCount;
    }
}

